package cn.bj.controller;

import java.io.File;
import java.io.IOException;

import javax.servlet.http.HttpSession;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import cn.bj.beans.Yxzc;
import cn.bj.service.YxzcService;

/*
 * 优选主持控制层
 * 
 * */
@Controller
@RequestMapping("/admin")
public class YxzcController {
	@Autowired
	YxzcService yxzcService;

	/*
	 * @RequestMapping("") public String selcectAllYxzc(){ List<Yxzc> yxzcs =
	 * yxzcService.selcectAllYxzc(); return ""; }
	 */
	// 插入

	@PostMapping("/insertYxzc.do")
	@ResponseBody
	public String insertYxhq(Yxzc yxzc, HttpSession session, MultipartFile img)
			throws IllegalStateException, IOException {

		// 返回信息
		String msg;
		if (img != null) {
			// 得到上传文件的的存储路径，web项目一般只能存储在自己的项目根下，因为服务器是租的别人的
			String path = session.getServletContext().getRealPath("/YxzcImg");
			// 文件名以原来文件名命名
			String ImgName = img.getOriginalFilename();
			// 限制上传的文件名的后缀名为jpg、png
			if (ImgName.endsWith("jpg") || ImgName.endsWith("png")) {
				// 装载文件
				File file = new File(path, ImgName);
				// 上传文件
				img.transferTo(file);

				// 拼凑服务器图片的路径
				path = session.getServletContext().getContextPath() + "/YxzcImg/" + ImgName;

				// 新生图片
				yxzc.setPicture(path);
				int num = yxzcService.insrtYxzc(yxzc);

				if (num != 0) {
					msg = "添加成功";
					System.out.println(msg);
					return msg;
				} else {
					msg = "添加失败";
					return msg;
				}

			}
			msg = "图片格式不正确，请确认图片格式jpg/png";
			return msg;
		}
		msg = "文件不能为空";
		return msg;

	}

	// 删除图片,根据ID删除。后面传了一个要删除的id值，比如要删除id是30的图片，整体路径是/delete.do/30
	// id来源于页面上传递时，加上id ？id = ${集合.id}
	@RequestMapping("/deleteYxzc.do")
	public String deleteYxjd(@Param("id") Integer id) {
		int num3 = yxzcService.deleteYxzc(id);
		System.out.println(num3);
		return "redirect:/admin/AllAdmins.do";
	}

	// 跳转修改图片,拿到单个对象
	@RequestMapping("/GotoUpdateYxzc.do")
	public String GotoUpdatePicture(@Param("id") Integer id, Model model) {
		Yxzc yxzc = yxzcService.selectById(id);

		model.addAttribute("yxzc", yxzc);
		return "admin/updateYxzc";
	}

	// 上传修改
	@RequestMapping("/YxzcUpdate.do")
	public String updateRotate(Yxzc yxzc, HttpSession session, MultipartFile img)
			throws IllegalStateException, IOException {
		// 返回信息
		if (img != null) {
			// 得到上传文件的的存储路径，web项目一般只能存储在自己的项目根下，因为服务器是租的别人的
			String path = session.getServletContext().getRealPath("/YxzcImg");
			// 文件名以原来文件名命名
			String ImgName = img.getOriginalFilename();
			// 限制上传的文件名的后缀名为jpg、png
			if (ImgName.endsWith("jpg") || ImgName.endsWith("png")) {
				// 装载文件
				File file = new File(path, ImgName);
				// 上传文件
				img.transferTo(file);

				// 拼凑服务器图片的路径
				path = session.getServletContext().getContextPath() + "/YxzcImg/" + ImgName;

				// 修改图片
				yxzc.setPicture(path);

				int num2 = yxzcService.updateYxzc(yxzc);

				if (num2 != 0) {
					return "redirect:/admin/AllAdmins.do";
				} else {
					return "admin/error2";
				}
			}
		}
		return "admin/error2";

	}

}
